package br.com.clubelivro.mb;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.clubelivro.bo.iface.IClubeLivroBO;
import br.com.clubelivro.modelo.Cidade;
import br.com.clubelivro.modelo.Endereco;
import br.com.clubelivro.modelo.Fornecedor;
import br.com.gaspar.framework.visao.jsf.ManagedBeanBase;
import br.com.gaspar.utils.exception.BaseException;

@ManagedBean(name="FornecedorMB")
@ViewScoped
public class FornecedorMB extends ManagedBeanBase<Fornecedor> {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@EJB
	private IClubeLivroBO<Fornecedor> bo;
	
	@EJB
	private IClubeLivroBO<Cidade> cidadeBO;
	
	private List<Cidade> cidades;
	
	@Override
	protected IClubeLivroBO<Fornecedor> getFachada() {
		return bo;
	}
	
	@PostConstruct
	@Override
	public void iniciar() {
		entidade = new Fornecedor();
		entidade.setEndereco(new Endereco());
		super.iniciar();
	}
	
	@Override
	protected void criarAntes() throws BaseException {
		entidade = new Fornecedor();
		entidade.setEndereco(new Endereco());
		cidades = cidadeBO.buscarTodosPorNamedQuery("Cidade.buscarTodos");
		super.criarAntes();
	}

	@Override
	protected void editarAntes() throws BaseException {
		cidades = cidadeBO.buscarTodosPorNamedQuery("Cidade.buscarTodos");
		super.editarAntes();
	}
	
	public List<Cidade> completarCidade(String query) {  
		List<Cidade> lista = null;
		try {
			lista = cidadeBO.buscarTodosPorNamedQuery("Cidade.buscarPorNome", "%" + query + "%");
		} catch (BaseException e) {
			e.printStackTrace();
		}  
        return lista;  
    }

	public List<Cidade> getCidades() {
		return cidades;
	}

	public void setCidades(List<Cidade> cidades) {
		this.cidades = cidades;
	}
}
